#!/usr/bin/env node

const http = require('http'),
      url = require('url'),
      qs = require('querystring'),
      log = console.log;


let items = [];

function genPage() {
  log(items.length);
  let html = `<!DOCTYPE html>
  <html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>todo list </title>
    </head>
    <body>
      英文感叹号，ctrl+y，松手，按逗号
      <h1>Todo list</h1>
      <form method="POST" action="http://192.168.145.129:8080">
        <input type="text" name="item">
        <input type="submit" value="submit">
      </form>
      <ul id="item-ul"> 
        ${items.map(item => '<li>'+item+'</li>').join('\n')}
      </ul>
    </body>
  </html>`;
  
  //res.setHeader('Content-Type', 'text/html');
  //res.setHeader('Content-Length', Buffer.byteLength(html));

  //res.statusCode = 200;
  //res.end(html);
  return html;
}

http.createServer((req, res) => {
  if(req.url !== '/') {
    log('错误');
    res.statusCode = 404;
    res.setHeader('Content-type', 'text/html');
    res.end('<h1>not found</h1>');
    return ;
  }
  let data = '';
  req.on('data', (chunk) => {
    data += chunk;
  });
  req.on('end', () => {
    //log(body);
    let item = qs.parse(data).item;
    if(item !== '' && typeof item !== 'undefined')
      items.push(item);
    res.writeHead(200, {
      'Content-Type':'text/html',
      'Content-Length':Buffer.byteLength(genPage())
    });
    res.end(genPage());
  });
}).listen(8080);
